<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">

  <title>fopen</title>
  <link href="../cppreference.css" rel="stylesheet" type="text/css">
</head>

<body>
<table>
  <tr>
  <td>
  <div class="body-content">

  <div class="header-box">
    <a href="../index.html">cppreference.com</a> &gt; <a href=
    "index.html">Standard C I/O</a> &gt; <a href="fopen.html">fopen</a>
  </div>

  <div class="name-format">
    fopen
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;stdio.h&gt;
  FILE *fopen( const char *fname, const char *mode );
</pre>

  <p>The fopen() function opens a file indicated by <em>fname</em> and
  returns a stream associated with that file. If there is an error,
  fopen() returns <strong>NULL</strong>. <em>mode</em> is used to
  determine how the file will be treated (i.e. for input, output,
  etc)</p>

  <table class="code-table">
    <tr>
      <th class="code-table-th">Mode</th>

      <th class="code-table-th">Meaning</th>
    </tr>

    <tr>
      <td class="code-table-td">&quot;r&quot;</td>

      <td class="code-table-td">Open a text file for reading</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;w&quot;</td>

      <td class="code-table-td">Create a text file for writing</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;a&quot;</td>

      <td class="code-table-td">Append to a text file</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;rb&quot;</td>

      <td class="code-table-td">Open a binary file for reading</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;wb&quot;</td>

      <td class="code-table-td">Create a binary file for writing</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;ab&quot;</td>

      <td class="code-table-td">Append to a binary file</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;r+&quot;</td>

      <td class="code-table-td">Open a text file for read/write</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;w+&quot;</td>

      <td class="code-table-td">Create a text file for read/write</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;a+&quot;</td>

      <td class="code-table-td">Open a text file for read/write</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;rb+&quot;</td>

      <td class="code-table-td">Open a binary file for read/write</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;wb+&quot;</td>

      <td class="code-table-td">Create a binary file for
      read/write</td>
    </tr>

    <tr>
      <td class="code-table-td">&quot;ab+&quot;</td>

      <td class="code-table-td">Open a binary file for read/write</td>
    </tr>
  </table>

  <p>An example:</p>
  <pre class="example-code">
   int ch;
   FILE *input = fopen( &quot;stuff&quot;, &quot;r&quot; );
   ch = getc( input );          
</pre>

  <div class="related-name-format">
    Related topics:
  </div>

  <div class="related-content">
    <a href="fclose.html">fclose</a><br>
    <a href="fflush.html">fflush</a><br>
    <a href="fgetc.html">fgetc</a><br>
    <a href="fputc.html">fputc</a><br>
    <a href="fread.html">fread</a><br>
    <a href="freopen.html">freopen</a><br>
    <a href="fseek.html">fseek</a><br>
    <a href="fwrite.html">fwrite</a><br>
    <a href="getc.html">getc</a><br>
    <a href="getchar.html">getchar</a><br>
    <a href="setbuf.html">setbuf</a>
  </div>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
